package com.hzdl.cinema.domain;

import java.util.ArrayList;
import java.util.List;

public class PlayExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PlayExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPlayIdIsNull() {
            addCriterion("play_Id is null");
            return (Criteria) this;
        }

        public Criteria andPlayIdIsNotNull() {
            addCriterion("play_Id is not null");
            return (Criteria) this;
        }

        public Criteria andPlayIdEqualTo(Integer value) {
            addCriterion("play_Id =", value, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdNotEqualTo(Integer value) {
            addCriterion("play_Id <>", value, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdGreaterThan(Integer value) {
            addCriterion("play_Id >", value, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("play_Id >=", value, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdLessThan(Integer value) {
            addCriterion("play_Id <", value, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdLessThanOrEqualTo(Integer value) {
            addCriterion("play_Id <=", value, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdIn(List<Integer> values) {
            addCriterion("play_Id in", values, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdNotIn(List<Integer> values) {
            addCriterion("play_Id not in", values, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdBetween(Integer value1, Integer value2) {
            addCriterion("play_Id between", value1, value2, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayIdNotBetween(Integer value1, Integer value2) {
            addCriterion("play_Id not between", value1, value2, "playId");
            return (Criteria) this;
        }

        public Criteria andPlayNameIsNull() {
            addCriterion("play_Name is null");
            return (Criteria) this;
        }

        public Criteria andPlayNameIsNotNull() {
            addCriterion("play_Name is not null");
            return (Criteria) this;
        }

        public Criteria andPlayNameEqualTo(String value) {
            addCriterion("play_Name =", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameNotEqualTo(String value) {
            addCriterion("play_Name <>", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameGreaterThan(String value) {
            addCriterion("play_Name >", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameGreaterThanOrEqualTo(String value) {
            addCriterion("play_Name >=", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameLessThan(String value) {
            addCriterion("play_Name <", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameLessThanOrEqualTo(String value) {
            addCriterion("play_Name <=", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameLike(String value) {
            addCriterion("play_Name like", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameNotLike(String value) {
            addCriterion("play_Name not like", value, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameIn(List<String> values) {
            addCriterion("play_Name in", values, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameNotIn(List<String> values) {
            addCriterion("play_Name not in", values, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameBetween(String value1, String value2) {
            addCriterion("play_Name between", value1, value2, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayNameNotBetween(String value1, String value2) {
            addCriterion("play_Name not between", value1, value2, "playName");
            return (Criteria) this;
        }

        public Criteria andPlayLengthIsNull() {
            addCriterion("play_Length is null");
            return (Criteria) this;
        }

        public Criteria andPlayLengthIsNotNull() {
            addCriterion("play_Length is not null");
            return (Criteria) this;
        }

        public Criteria andPlayLengthEqualTo(Integer value) {
            addCriterion("play_Length =", value, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthNotEqualTo(Integer value) {
            addCriterion("play_Length <>", value, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthGreaterThan(Integer value) {
            addCriterion("play_Length >", value, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthGreaterThanOrEqualTo(Integer value) {
            addCriterion("play_Length >=", value, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthLessThan(Integer value) {
            addCriterion("play_Length <", value, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthLessThanOrEqualTo(Integer value) {
            addCriterion("play_Length <=", value, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthIn(List<Integer> values) {
            addCriterion("play_Length in", values, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthNotIn(List<Integer> values) {
            addCriterion("play_Length not in", values, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthBetween(Integer value1, Integer value2) {
            addCriterion("play_Length between", value1, value2, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayLengthNotBetween(Integer value1, Integer value2) {
            addCriterion("play_Length not between", value1, value2, "playLength");
            return (Criteria) this;
        }

        public Criteria andPlayImageIsNull() {
            addCriterion("play_Image is null");
            return (Criteria) this;
        }

        public Criteria andPlayImageIsNotNull() {
            addCriterion("play_Image is not null");
            return (Criteria) this;
        }

        public Criteria andPlayImageEqualTo(String value) {
            addCriterion("play_Image =", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageNotEqualTo(String value) {
            addCriterion("play_Image <>", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageGreaterThan(String value) {
            addCriterion("play_Image >", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageGreaterThanOrEqualTo(String value) {
            addCriterion("play_Image >=", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageLessThan(String value) {
            addCriterion("play_Image <", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageLessThanOrEqualTo(String value) {
            addCriterion("play_Image <=", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageLike(String value) {
            addCriterion("play_Image like", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageNotLike(String value) {
            addCriterion("play_Image not like", value, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageIn(List<String> values) {
            addCriterion("play_Image in", values, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageNotIn(List<String> values) {
            addCriterion("play_Image not in", values, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageBetween(String value1, String value2) {
            addCriterion("play_Image between", value1, value2, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayImageNotBetween(String value1, String value2) {
            addCriterion("play_Image not between", value1, value2, "playImage");
            return (Criteria) this;
        }

        public Criteria andPlayTypeIsNull() {
            addCriterion("play_Type is null");
            return (Criteria) this;
        }

        public Criteria andPlayTypeIsNotNull() {
            addCriterion("play_Type is not null");
            return (Criteria) this;
        }

        public Criteria andPlayTypeEqualTo(String value) {
            addCriterion("play_Type =", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeNotEqualTo(String value) {
            addCriterion("play_Type <>", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeGreaterThan(String value) {
            addCriterion("play_Type >", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeGreaterThanOrEqualTo(String value) {
            addCriterion("play_Type >=", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeLessThan(String value) {
            addCriterion("play_Type <", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeLessThanOrEqualTo(String value) {
            addCriterion("play_Type <=", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeLike(String value) {
            addCriterion("play_Type like", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeNotLike(String value) {
            addCriterion("play_Type not like", value, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeIn(List<String> values) {
            addCriterion("play_Type in", values, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeNotIn(List<String> values) {
            addCriterion("play_Type not in", values, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeBetween(String value1, String value2) {
            addCriterion("play_Type between", value1, value2, "playType");
            return (Criteria) this;
        }

        public Criteria andPlayTypeNotBetween(String value1, String value2) {
            addCriterion("play_Type not between", value1, value2, "playType");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}